Django 입문 (6)  동적 URL

다단 계 url 은 여러 app 에서 각 응용 프로그램 을 분류 할 수 있 지만.지금 은 app 01 의 views. py 에서 대량의 함 수 를 정의 한 경우 가 있 습 니 다.이렇게 되면 우 리 는 app 01 의 urls. py 에서 도 함수 의 수량 에 따라 바 인 딩 정 보 를 편집 해 야 합 니 다.함수 하나, 연 결 된 정보의 대응 을 적어 라.이런 무 서운 일 을 피하 기 위해 서 는 동적 url 로 요청 을 처리 해 야 합 니 다.동적 url 이란 정규 표현 식 을 통 해 사용자 가 입력 한 url 내용 과 일치 하고 url 을 매개 변수 로 백 엔 드 에 전달 하 는 python 함수 로 처리 할 수 있 습 니 다.
    우선 app 01 에 적 용 된 views. py 파일 에 함수 dynamic 를 새로 만 듭 니 다.url () 은 받 은 url 내용 을 연결 하 는 데 사 용 됩 니 다.
/app01/views.py
from django.shortcuts import render
from django.shortcuts import HttpResponse
# Create your views here.

def dynamic_url(request,arg1,arg2):
    return HttpResponse(arg1+arg2)

 
my django 디 렉 터 리 의 urls. py 를 수정 하고 정규 표현 식 으로 app 01 이후 의 일치 규칙 을 편집 합 니 다.
/mydjango/urls.py
#!/usr/bin/env python
# coding:utf-8
from django.conf.urls import url,include
from django.contrib import admin
#    app01
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^app01/', include('app01.urls')),
    url(r'^app02/', include('app02.urls')),
    #          dynamic_url   ,            ,        
    url(r'^dynamic_url/(\d+)/(\d+)$', views.dynamic_url),
    #    url          
    url(r'^', include('app01.urls')),
]

    
괄호 안의 내용 은 선후 순서에 따라 python 함수 에 전 달 됩 니 다.
다음은 저희 가 효 과 를 테스트 해 보도 록 하 겠 습 니 다.
위의 그림 과 같이.우리 url 의 마지막 두 수 는 매개 변수 로 함수 가 들 어 와 페이지 에 인쇄 되 었 습 니 다.
만약 에 우리 가 매개 변수 전달 순서 에 대해 특별한 요구 가 있다 면 예전 에 사전 형식 으로 일치 하 는 내용 은 특정한 매개 변수 에 구체 적 으로 대응 할 수 있 습 니 다. 우 리 는 urls. py 파일 에서 url 과 일치 할 때 사용 할 수 있 습 니까?P < arg > 키워드 로 이 루어 집 니 다. 다음은 urls. py 만 수정 하면 됩 니 다.
/mydjango/urls.py
#!/usr/bin/env python
# coding:utf-8
from django.conf.urls import url,include
from django.contrib import admin
#    app01
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^app01/', include('app01.urls')),
    url(r'^app02/', include('app02.urls')),
    # url(r'^dynamic_url/(\d+)/(\d+)$', views.dynamic_url),
    #             arg2  ,        arg1  
    url(r'^dynamic_url/(?P<arg2>\d+)/(?P<arg1>\d+)$', views.dynamic_url),
    #    url          
    url(r'^', include('app01.urls')),
]

방금 url 다시 고침
url 이 반드시 변 하 는 상황 에서 매개 변수 전달 순서 가 바 뀌 었 습 니 다.이것 이 바로 동적 url 입 니 다.
본 고 는 '벼락 콩 주머니' 블 로그 에서 나 왔 으 니 전재 하 는 것 을 사절 합 니 다!

좋은 웹페이지 즐겨찾기